/// Compares two integers for equality
///
/// # Parameters
/// - a: Reference to first integer
/// - b: Reference to second integer
///
/// # Returns
/// `true` if values are equal, `false` otherwise
pub fn int_equal<T: PartialEq>(a: &T, b: &T) -> bool {
    a == b
}

/// Compares two integers for ordering
///
/// # Parameters
/// - a: Reference to first integer
/// - b: Reference to second integer
///
/// # Returns
/// - `-1` if a < b
/// - `0` if a == b
/// - `1` if a > b
pub fn int_compare<T: Ord>(a: &T, b: &T) -> i32 {
    match a.cmp(b) {
        std::cmp::Ordering::Less => -1,
        std::cmp::Ordering::Equal => 0,
        std::cmp::Ordering::Greater => 1,
    }
}
